import java.util.PriorityQueue;

class Student implements Comparable<Student> {
    String name;
     int  age;
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }

    //实现接口的类需要实现接口所有的方法
    // 有无专门封装好的按照字母规则比较的方法？
    //调用方法的是对象或类，对象在调用方法时，是在调用自身类中重写后的方法。String类中 已经重写了compareTo方法
    //
    @Override
    public int compareTo(Student o) {
        //比较年龄：

        if(this.age == o.age){
            return 0;
        }else if(this.age>o.age){
            return 1;
        }else {
            return -1;
        }
    }


}


public class Test {
    public static void main(String[] args) {
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();
        minHeap.offer(1);
        minHeap.offer(2);
        minHeap.offer(3);
        //然后获取根节点元素，看其是小根堆，还是大根堆
       int top =  minHeap.peek();
        System.out.println(top);
        //然后再移除1，加入4，判断此时的堆顶元素
        minHeap.poll();
        minHeap.offer(4);
        System.out.println(minHeap.peek());




       //默认堆为小根堆






    }



    public static void main2(String[] args) {
        Student student1 = new Student("张三",10);
        Student student2 = new Student("李四",9);
        System.out.println();




    }



    public static void main1(String[] args) {
      /*  Student student1 = new Student("张三");
        Student student2 = new Student("李四");*/
        //如何将student1与student2进行比较？
        //关于比较的方法是由比较接口表示
        //关于引用类型的比较，需要设定比较的规则，是按照数值，还是字母排序，
        // 为了规范方法：我们对特别的方法用接口来规范，所以需要实现接口，而不是自己单独创建一个方法


    }
}
